package com.hliushi.redis.task;

import com.hliushi.redis.config.Constants;
import lombok.extern.slf4j.Slf4j;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

/**
 * @author llhuang10
 * @date 2021/8/14 11:24
 */
@Slf4j
@Component
public class TaskCrowdService {


    @Resource
    private RedisTemplate redisTemplate;


    /**
     * 提前先把数据刷新到redis缓存汇总
     *
     * @param
     * @return
     */
    @PostConstruct
    public void initData() {
        // 一开始向redis数据库中插入一些数据

        boolean bool = redisTemplate.hasKey(Constants.PRICE_KEY);
        // 判断一下
        if (!bool) {
            List<String> jdList = this.priceInit();
            jdList.forEach(item -> redisTemplate.opsForSet().add(Constants.PRICE_KEY, item));
            log.info("redis data init success!");
        }
    }


    /**
     * 按一定的概率初始化奖品
     */
    private List<String> priceInit() {
        List<String> result = new ArrayList<>();
        // 10金豆
        for (int i = 0; i < Constants.JD_LEVEL1; i++) {
            result.add("10-" + i);
        }
        // 5金豆
        for (int i = 0; i < Constants.JD_LEVEL2; i++) {
            result.add("5-" + i);
        }
        // 1金豆
        for (int i = 0; i < Constants.JD_LEVEL3; i++) {
            result.add("1-" + i);
        }
        // 谢谢参与
        for (int i = 0; i < Constants.JD_LEVEL4; i++) {
            result.add("0-" + i);
        }
        return result;
    }
}
